ここまでのトピックでは、XAML マークアップを使用してマーカーを追加する方法を説明してきました。プロジェクトによっては、コードでマーカーを追加する必要があります。
最初に、新しい ChartPanel を作成する必要があります。
C# |
コードのコピー
|
---|---|
var pnl = new ChartPanel(); |
新しい ChartPanel を追加したら、新しい ChartPanelObject を追加し、配置を設定します。
C# |
コードのコピー
|
---|---|
var obj = new ChartPanelObject() { HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom }; |
次に、Border 要素を追加します。
C# |
コードのコピー
|
---|---|
var bdr = new Border() { Background = new SolidColorBrush(Colors.Green) { Opacity = 0.4 }, BorderBrush = new SolidColorBrush(Colors.Green), BorderThickness = new Thickness(1, 1, 3, 3), CornerRadius = new CornerRadius(6, 6, 0, 6), Padding = new Thickness(3) }; |
2つの TextBlock コントロールを含む StackPanel 要素を追加します。連結ソースは、追加した ChartPanelObject です。
C# |
コードのコピー
|
---|---|
var sp = new StackPanel(); var tb1 = new TextBlock(); var bind1 = new Binding(); bind1.Source = obj; bind1.StringFormat = "x={0:#.##}"; bind1.Path = new PropertyPath("DataPoint.X"); tb1.SetBinding(TextBlock.TextProperty, bind1); var tb2 = new TextBlock(); var bind2 = new Binding(); bind2.Source = obj; bind2.StringFormat = "y={0:#.##}"; bind2.Path = new PropertyPath("DataPoint.Y"); tb2.SetBinding(TextBlock.TextProperty, bind2); sp.Children.Add(tb1); sp.Children.Add(tb2); bdr.Child = sp; |
ChartPanelObject の Content、DataPoint、および Action プロパティを設定し、ChartPanelObject を ChartPanel に追加します。コードの最後の行は、レイヤのコレクションをチャートコントロールに追加しています。
C# |
コードのコピー
|
---|---|
obj.Content = bdr;
obj.DataPoint = new Point();
obj.Action = ChartPanelAction.MouseMove;
pnl.Children.Add(obj);
chart.View.Layers.Add(pnl);
|
コードの最後の行で、Attach プロパティを設定する必要があります。
C# |
コードのコピー
|
---|---|
obj.Attach = ChartPanelAttach.MouseMove; }; } } |
このトピックのコードでは、マウスポインタに追随するチャートマーカーを作成しました。